package com.gxar.quick.ar.server.db.model;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 交易单
 * 后续可能拆分出去
 *
 * @author linsy
 * @version 1.0
 * @created 2023/11/3 10:50
 */
@Entity
@Getter
@Setter
@NoArgsConstructor
@Table(name = "transaction_order")
public class TransactionOrderEntity {
    /**
     * 交易单id
     */
    @Id
    private Long id;
    /**
     * 外部交易单号
     */
    private String extTradeNo;
    /**
     * 交易平台：0-微信
     */
    @Column(nullable = false)
    private Integer platform;
    /**
     * 交易来源：0-订单，1-充值
     */
    @Column(nullable = false)
    private Integer source;
    /**
     * 交易的业务单号，例如订单号
     */
    @Column(nullable = false)
    private Long businessId;
    /**
     * 交易的类型：0-支付，1-退款
     */
    @Column(nullable = false)
    private Integer type;

    /**
     * 状态：0-交易中，1-已完成，2-已退款，-1:关闭，-2:失败
     */
    @Column(nullable = false)
    private Integer status;
    /**
     * 交易的价格
     */
    @Column(nullable = false)
    private BigDecimal price;
    /**
     * 交易关闭或失败的原因
     */
    private String reason;
    /**
     * 创建时间
     */
    @Column(nullable = false)
    private Date createdAt;
    /**
     * 创建人
     */
    @Column(nullable = false)
    private String creator;
    /**
     * 更新时间
     */
    @Column(nullable = false)
    private Date updatedAt;
    /**
     * 更新人
     */
    @Column(nullable = false)
    private String operator;
    /**
     * 过期时间
     */
    @Column(nullable = false)
    private Date timeExpire;
}
